<cfcomponent output="false">
	
	<!--- --->
	
	<cffunction name="run" access="remote" output="false" returntype="any" returnformat="json">
		<cfargument name="cfc" required="true" />
		<cfargument name="callMethod" required="true" />

		<cfset var local = {} />

		<cfset local.namespace = "" />
		
		<cfif arguments.cfc contains "Service">
			<cfset local.namespace = "s" />
		<cfelseif arguments.cfc contains "Gateway">
			<cfset local.namespace = "g" />
		<cfelseif arguments.cfc contains "Controller">
			<cfset local.namespace = "c" />
		<cfelseif arguments.cfc contains "View">
			<cfset local.namespace = "v" />
		</cfif>

		<cfset local.returnData = application[local.namespace][arguments.cfc][arguments.callMethod](argumentCollection=arguments) />

		<cfif structKeyExists(local,"returnData")>
			<cfreturn local.returnData />
		</cfif>

	</cffunction>
	
	<!--- --->
	
</cfcomponent>
